#ifndef ALIYUN_IOT_PLATFORM_SIGNAL_H
#define ALIYUN_IOT_PLATFORM_SIGNAL_H

#include "aliyun_iot_common_datatype.h"

#define SIGHUP_IOT    1 //终端挂起或者控制进程终止
#define SIGINT_IOT    2 //键盘中断（如break键被按下）
#define SIGQUIT_IOT   3 //键盘的退出键被按下
#define SIGILL_IOT    4 //非法指令
#define SIGABRT_IOT   6 //由abort(3)发出的退出指令
#define SIGFPE_IOT    8 //浮点异常
#define SIGKILL_IOT   9 //Kill信号
#define SIGSEGV_IOT   11 //无效的内存引用
#define SIGPIPE_IOT   13 //管道破裂: 写一个没有读端口的管道
#define SIGALRM_IOT   14 //由alarm(2)发出的信号
#define SIGTERM_IOT   15 //终止信号

#define SIG_IGN_IOT 1
#define SIG_DFL_IOT 0

typedef enum SIGNAL_HANDLE_TYPE
{
    SIGNAL_HANDLE_SYS_DEFINE = 0,
    HANDLE_TYPE_USR_DEFINE,
}SIGNAL_HANDLE_TYPE_E;

INT32 aliyun_iot_signal(INT32 signum,SIGNAL_HANDLE_TYPE_E handleType,VOID* handle);
INT32 aliyun_iot_alarm(UINT32 seconds);
#endif
